﻿// //  ********************************************************************************
// //  Copyright (C) 2016 Sebastian Kenter. All rights reserved.
// // 
// //  Name    : PhotonServerProject | PhotonServerFramework | IServerConfiguration.cs
// //  Created : 2016 - 03 - 21 09:59
// //  Modified: 2016 - 04 - 18 09:38
// //  ********************************************************************************

namespace PhotonServerFramework.Interfaces.Configuration
{
    /// <summary>
    ///     Interface for the server configuration
    /// </summary>
    public interface IServerConfiguration
    {
        /// <summary>
        ///     UDP-Port where clients can connect to
        /// </summary>
        int ClientUdpPort { get; set; }

        /// <summary>
        ///     Interval between two connection tries from
        ///     a sub server to the master server
        /// </summary>
        int ConnectionRetryInterval { get; set; }

        /// <summary>
        ///     IpAddress of the server
        /// </summary>
        string IpAddress { get; set; }

        /// <summary>
        ///     Is the server the master server?
        /// </summary>
        bool IsMasterServer { get; set; }

        /// <summary>
        ///     Local IP-Address of the server
        /// </summary>
        string LocalIpAddress { get; set; }

        /// <summary>
        ///     Local port of the server (TCP)
        /// </summary>
        int LocalPort { get; set; }

        /// <summary>
        ///     IP-Address of the master server
        /// </summary>
        string MasterIpAddress { get; set; }

        /// <summary>
        ///     TCP-Port of the master server
        /// </summary>
        int MasterTcpPort { get; set; }

        /// <summary>
        ///     UDP-Port of the master server
        /// </summary>
        int MasterUdpPort { get; set; }

        /// <summary>
        ///     Number of connection retries allowed
        /// </summary>
        int MaximumRetries { get; set; }

        /// <summary>
        ///     Name of the server (especially for realm and instance servers)
        /// </summary>
        string Name { get; set; }

        /// <summary>
        ///     Name of the application (photon server instance)
        /// </summary>
        string Application { get; set; }

        /// <summary>
        ///     TCP-Port of the server
        /// </summary>
        int ServerTcpPort { get; set; }
    }
}
